package com.fruitshop.service;

import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.fruitshop.dto.OrderCreateDTO;
import com.fruitshop.vo.OrderVO;

/**
 * 订单服务接口
 */
public interface OrderService {
    
    /**
     * 创建订单
     *
     * @param userId        用户ID
     * @param orderCreateDTO 订单创建数据
     * @return 订单编号
     */
    String create(Long userId, OrderCreateDTO orderCreateDTO);
    
    /**
     * 支付订单
     *
     * @param userId  用户ID
     * @param orderNo 订单编号
     * @return 是否成功
     */
    Boolean pay(Long userId, String orderNo);
    
    /**
     * 取消订单
     *
     * @param userId  用户ID
     * @param orderNo 订单编号
     * @return 是否成功
     */
    Boolean cancel(Long userId, String orderNo);
    
    /**
     * 确认收货
     *
     * @param userId  用户ID
     * @param orderNo 订单编号
     * @return 是否成功
     */
    Boolean confirm(Long userId, String orderNo);
    
    /**
     * 获取订单详情
     *
     * @param userId  用户ID
     * @param orderNo 订单编号
     * @return 订单详情
     */
    OrderVO getDetail(Long userId, String orderNo);
    
    /**
     * 分页查询订单列表
     *
     * @param userId  用户ID
     * @param status  订单状态
     * @param page    页码
     * @param pageSize 页大小
     * @return 订单分页列表
     */
    Page<OrderVO> pageList(Long userId, Integer status, Integer page, Integer pageSize);
} 